package com.hopes.bizz.close.position.vo;

import com.hopes.bizz.close.common.constant.enums.ParkCloseModDictEnum;
import com.hopes.bizz.close.common.constant.enums.ParkCloseSysDictEnum;
import com.hopes.boss.admin.api.resolver.DictResolver;
import com.hopes.boss.admin.api.resolver.enums.AdminDictEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @author yumr
 * @ProjectName bizz
 * @Description 危险品车辆缓存定位VO
 * @time 2024/1/30 13:49
 */
@Data
public class HazardCachePositionVO implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * GPS设备编码
     */
    private String deviceNo;

    /**
     * 企业标识
     */
    private String orgId;

    /**
     * 车牌号
     */
    private String licencePlateNum;

    /**
     * 危险品预约Id
     */
    private Long hazardApplyId;

    /**
     * 货运单号
     */
    private String billNo;

    /**
     * 数据时间
     */
    private Date dataTime;

    /**
     * 经度
     */
    private String longitude;

    /**
     * 纬度
     */
    private String latitude;

    /**
     * 高度
     */
    private String altitude;

    /**
     * 速度
     */
    private Double speed;

    /**
     * 是否报警
     */
    private boolean alarmFlag;

    /**
     * 报警类型
     */
    private Integer alarmType;


    /**
     * 是否在车道内
     */
    private Boolean inRoadFlag;

    /**
     * 车道ID
     */
    private Long roadId;

    /**
     * 是否在停车场
     */
    private Boolean inParkingLotFlag;

    /**
     * 停车场ID
     */
    private Long parkingLotId;

    /**
     * 是否在企业内
     */
    private Boolean inCompanyFlag;

    /**
     * 企业Id
     */
    private Long inCompanyId;

    /**
     * 企业名称
     */
    public String getOrgIdStr() {
        return DictResolver.getItemLabelByValue(AdminDictEnum.sys_company, this.getOrgId());
    }

    /**
     * Gps设备名称
     */
    public String getGpsDeviceName() {
        return DictResolver.getItemLabelByValue(ParkCloseModDictEnum.closed_all_gps_device, this.getDeviceNo());
    }


    public String getCloseRoadIdStr() {
        return DictResolver.getItemLabelByValue(ParkCloseModDictEnum.closed_road, this.getRoadId());
    }

    public String getAlarmTypeStr() {
        return DictResolver.getItemLabelByValue(ParkCloseSysDictEnum.close_hazard_alarm_type, this.getAlarmType());
    }

    public String getPositionCompanyIdStr() {
        return DictResolver.getItemLabelByValue(AdminDictEnum.sys_company, this.getInCompanyId());
    }

}
